﻿





using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace SpecialEffects
{
    /// <summary>
    /// This abstract class represents a particle effect of a special effect.
    /// </summary>
    public abstract class ParticleEffect : SpecialEffect
    {
        /// <summary>
        /// Random generator, used for random values.
        /// </summary>
        protected virtual Random rand
        {
            get;
            set;
        }

        /// <summary>
        /// The maximum speed of a particle.
        /// </summary>
        public virtual float maxSpeed
        {
            get;
            protected set;
        }

        /// <summary>
        /// The moving direction of a particle.
        /// </summary>
        public virtual Vector3 direction
        {
            get;
            protected set;
        }

        /// <summary>
        /// The number of particles.
        /// </summary>
        public virtual int particleCount
        {
            get;
            protected set;
        }

        public virtual Texture2D texture
        {
            get;
            protected set;
        }

        public virtual VertexBuffer deviceVertexBuffer
        {
            get;
            protected set;
        }

        public virtual IndexBuffer deviceIndexBuffer
        {
            get;
            protected set;
        }

        /// <summary>
        /// The indices of the vertices of a particle effect.
        /// </summary>
        public virtual int[] indices
        {
            get;
            protected set;
        }

        
    }
}

